package config

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"os"
)

type Config struct {
	Appid string `json:"appid"`
	Kafka struct {
		KafkaName           string `json:"kafka_name"`
		Brokers             string `json:"brokers"`
		ConsumerGroup       string `json:"consumer_group"`
	}
	Alarm struct {
		Threshold      int    `json:"threshold"`
		Count          int    `json:"count"`
		PollSecond     int    `json:"poll_second"`
		Webhook        string `json:"webhook"`
		NoticeTemplate string `json:"notice_template"`
	}
	Log struct {
		LogFile string `json:"file_path"`
	}
}

var configObj *Config

// 获取配置
func GetConfig() *Config {
	return configObj
}

func init() {
	if configObj == nil {
		configObj = readConfig()
	}
}

/*
*
读取config.json配置文件
*/
func readConfig() *Config {
	file, err := os.Open("config.json")
	if err != nil {
		fmt.Println("未找到config.json文件")
		return nil
	}
	defer file.Close()
	data, err := ioutil.ReadAll(file)
	if err != nil {
		fmt.Println("读取config.json文件失败")
		return nil
	}
	var result Config
	err = json.Unmarshal(data, &result)
	return &result
}
